import localForage from 'localforage'
// 通过过这个api就可以将电子书缓存的功能经行实现，这个缓存实际是缓存到我们游览器的，也就是在我们的pc或则是手机的本地的
// localForge这个库全部采用异步的方式进行操作
// 基于localForage做了一个简单的封装api
export function setLocalForage(key, data, cb, cb2) {
  localForage.setItem(key, data).then((value) => {
    if (cb) cb(value)
  }).catch(function(err) {
    if (cb2) cb2(err)
  })
}

export function getLocalForage(key, cb) {
  localForage.getItem(key, (err, value) => {
    cb(err, value)
  })
}
// 根据我们给定的key将值给删掉.if (cb) cb()会带哦函数
export function removeLocalForage(key, cb, cb2) {
  localForage.removeItem(key).then(function() {
    if (cb) cb()
  }).catch(function(err) {
    if (cb2) cb2(err)
  })
}
// 将整个localForage里面的数据群不清空
export function clearLocalForage(cb, cb2) {
  localForage.clear().then(function() {
    if (cb) cb()
  }).catch(function(err) {
    if (cb2) cb2(err)
  })
}
// 获取INDEXDB数据库里面key的数目
export function lengthLocalForage(cb) {
  localForage.length().then(
    numberOfKeys => {
      if (cb) cb(numberOfKeys)
      console.log(numberOfKeys)
    }).catch(function(err) {
    console.log(err)
  })
}
// 对key value做遍历，获取到里面一共有多少个元素，同时每一个每个元素的key value是什么，就是遍历了
export function iteratorLocalForage() {
  localForage.iterate(function(value, key, iterationNumber) {
    console.log([key, value])
  }).then(function() {
    console.log('Iteration has completed')
  }).catch(function(err) {
    console.log(err)
  })
}
// 判断当前游览器是否支持indexDB数据库，如果不支持我们是不能提供离线缓存这个功能的
export function support() {
  const indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || null
  if (indexedDB) {
    return true
  } else {
    return false
  }
}
